<?php

  /**
   * Tag
   *
   * ORM для таблицы прикрепленных к постам тегов
   *
   * @property      int     $tag_id идентификатор тега
   * @property      int     $rec_id идентификатор поста
   * @property-read TagName $name   тег
   * @property-read Post    $post   пост
   */

  final class Tag extends Record
  {
    /**
     * вернуть экземпляр модели
     *
     * @return Tag
     * @access public
     */
    public static function model($className = __CLASS__)
    {
      return parent::model($className);
    }

    /**
     * правила проверки атрибутов модели
     *
     * @return array[]
     * @access public
     */
    public function rules()
    {
      return array(
        array("tag_id", "exist", "className" => "TagName", "attributeName" => "id", "allowEmpty" => false),
        array("rec_id", "exist", "className" => "Post", "attributeName" => "id", "allowEmpty" => false)
      ) + parent::rules();
    }

    /**
     * связи с другими таблицами
     *
     * @return array[]
     * @access public
     */
    public function relations()
    {
      return array(
        "name" => array(self::BELONGS_TO, "TagName", "tag_id"),
        "post" => array(self::BELONGS_TO, "Post", "rec_id")
      ) + parent::relations();
    }
  }

?>
